﻿namespace IMModel.Domain.Common
{
    /// <summary>
    /// Определяет типы, которые поддерживают коллекцию индексов респондентов
    /// </summary>
    public interface IRespondentIndexVector
    {
        /// <summary>
        /// Получает индексы респондентов
        /// </summary>
        RespondentIndexCollection Indexes { get; }

        /// <summary>
        /// Получает индекс заданного респондента
        /// </summary>
        /// <param name="respondent"></param>
        /// <returns></returns>
        double this[Respondent respondent]{ get;}

        /// <summary>
        /// Получает индексы респондентов с указанным фильтром
        /// </summary>
        /// <returns></returns>
        RespondentIndexCollection CalcIndexes(IndexContext сontext);
    }        
}
